2005-11-07 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkpathbar.[hc]: Set focus-on-click to FALSE for all buttons.
+ Don't grab focus when a slider button is pressed, instead, use
+ a bit in the pathbar struct to determine whether to scroll up
+ or down. (#314486, Carlos Garnacho)
+
* gtk/gtkentrycompletion.c (_gtk_entry_completion_popup):
Don't popup the completions if the focus has already been
moved somewhere else. (#319914, Christian Persch)
2005-11-07 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkpathbar.[hc]: Set focus-on-click to FALSE for all buttons.
+ Don't grab focus when a slider button is pressed, instead, use
+ a bit in the pathbar struct to determine whether to scroll up
+ or down. (#314486, Carlos Garnacho)
+
* gtk/gtkentrycompletion.c (_gtk_entry_completion_popup):
Don't popup the completions if the focus has already been
moved somewhere else. (#319914, Christian Persch)
gtk_widget_push_composite_child ();
button = gtk_button_new ();
+ gtk_button_set_focus_on_click (button, FALSE);
gtk_container_add (GTK_CONTAINER (button), gtk_arrow_new (arrow_type, GTK_SHADOW_OUT));
gtk_container_add (GTK_CONTAINER (path_bar), button);
gtk_widget_show_all (button);
if (path_bar->timer)
{
- if (GTK_WIDGET_HAS_FOCUS (path_bar->up_slider_button))
+ if (path_bar->scrolling_up)
gtk_path_bar_scroll_up (path_bar->up_slider_button, path_bar);
- else if (GTK_WIDGET_HAS_FOCUS (path_bar->down_slider_button))
+ else
gtk_path_bar_scroll_down (path_bar->down_slider_button, path_bar);
if (path_bar->need_timer)
GdkEventButton *event,
GtkPathBar *path_bar)
{
- if (!GTK_WIDGET_HAS_FOCUS (widget))
- gtk_widget_grab_focus (widget);
-
if (event->type != GDK_BUTTON_PRESS || event->button != 1)
return FALSE;
path_bar->ignore_click = FALSE;
if (widget == path_bar->up_slider_button)
- gtk_path_bar_scroll_up (path_bar->up_slider_button, path_bar);
+ {
+ path_bar->scrolling_up = TRUE;
+ gtk_path_bar_scroll_up (path_bar->up_slider_button, path_bar);
+ }
else if (widget == path_bar->down_slider_button)
- gtk_path_bar_scroll_down (path_bar->down_slider_button, path_bar);
+ {
+ path_bar->scrolling_up = FALSE;
+ gtk_path_bar_scroll_down (path_bar->down_slider_button, path_bar);
+ }
if (!path_bar->timer)
{
button_data->type = find_button_type (path_bar, path);
button_data->button = gtk_toggle_button_new ();
+ gtk_button_set_focus_on_click (button_data->button, FALSE);
switch (button_data->type)
{